package org.code.clienteweb;

import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

import org.tempuri.Service1SoapProxy;

public class GestionarPropietario {

	Service1SoapProxy s;

	public GestionarPropietario(){
		s=new Service1SoapProxy();
	}

	public int darDeAltaPropietario(String Nombre, String Contrasena, String email){
		try {
			return s.darDeAltaPropietario(Nombre, Contrasena, email);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			//e.printStackTrace();
		}
		return -1;
	}

	public int darDeBajaPropetario(String Nombre){
		try {
			return s.darDeBajaPropetario(Nombre);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return -1;
	}

	public String buscarPropetario(String Nombre){
		try {
			return s.buscarPropietario(Nombre);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

	public Propietario iniciarSesionPropietario(String Usuario, String Contrasena){
		try {
			if(s.iniciarSesionPropietario(Usuario, Contrasena)){
				return new Propietario(Usuario,Contrasena);
			}
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

	public boolean modificarContrasenaPropietario(String username, String contrasena){
		try {
			return s.modificarContrasenaPropietario(username, contrasena);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}
	
	public boolean modificarEmailPropietario(String username, String email){
		try {
			return s.modificarEmailPropietario(username, email);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

	public boolean registrarRestaurante(String Nombre, String Especialidad, String Propietario, double latitud, double longitud){
		try {
			return s.registrarRestaurante(Nombre, Especialidad, Propietario, latitud, longitud);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

	public List<Restaurante> listarRestaurantesPropietario(String Propietario){
		try {
			String[] lista=s.listarRestaurantesPropietario(Propietario);
			if(lista!=null){
				List<Restaurante> restaurantes=new ArrayList<Restaurante>();
				for(int i=0;i<lista.length;i++){
					StringTokenizer rest=new StringTokenizer(lista[i],"|");
					restaurantes.add(new Restaurante(Integer.parseInt(rest.nextToken()),rest.nextToken(),rest.nextToken(),rest.nextToken(),Double.parseDouble(rest.nextToken()),Double.parseDouble(rest.nextToken())));
				}
				return restaurantes;
			}
		} catch (RemoteException e) {
			e.printStackTrace();
		}
		return null;
	}

	public Restaurante buscarRestaurantePropietario(String Propietario, int id){
		List<Restaurante> lista=listarRestaurantesPropietario(Propietario);
		if(lista!=null){
			for(int i=0;i<lista.size();i++){
				if(lista.get(i).getIdRestaurante()==id){
					return lista.get(i);
				}
			}
		}
		return null;
	}

	public boolean modificarRestaurante(int idR, String nombre, String especialidad, double latitud, double longitud){
		try {
			return s.modificarRestaurante(idR, nombre, especialidad, latitud, longitud);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

	public boolean eliminarRestaurante(int idR){
		try {
			return s.eliminarRestaurante(idR);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

	public boolean anadirCarta(String plato, double precio, String tipo, int idRestaurante){
		try {
			return s.anadirCarta(plato, precio, tipo, idRestaurante);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

	public boolean anadirMenu(String menu, double precio, int idRestaurante){
		try {
			return s.anadirMenu(menu, precio, idRestaurante);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

	public boolean modificarCarta(String platoAntiguo, String plato, double precio, String tipo, int idRestaurante){
		try {
			return s.modificarCarta(platoAntiguo, plato, precio, tipo, idRestaurante);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

	public boolean modificarMenu(String menuAntiguo,String menu, double precio, int idRestaurante){
		try {
			return s.modificarMenu(menuAntiguo, menu, precio, idRestaurante);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

	public boolean eliminarCarta(String plato, int idRestaurante){
		try {
			return s.eliminarCarta(plato, idRestaurante);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

	public boolean eliminarMenu(String menu, int idRestaurante){
		try {
			return s.eliminarMenu(menu, idRestaurante);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

}
